#ifndef PRINTTHREADPROGRESSCALLBACK_H
#define PRINTTHREADPROGRESSCALLBACK_H

#include "shared/slicer/slicerprogresscallback.h"

class PrintThreadSlicerProgressCallBack :  public SlicerProgressCallback
{

    /**
     * Called before slicing begins to define how many slices will need to be
     * created.
     */
    void setEstimatedNumberOfSlices(int count);

    /**
     * Invoked each time a slice has been filled out.  Typically, this is used
     * to increment a progress bar.
     */
    void sliceHasBeenComputed(int index, float z);

    /**
     * Called when the slicer has some sort of problem.
     */
    void encounteredIssue(const QString& description);

    /**
     * Invoked after slicing has completed
     */
    void finishedSlicing(const SliceStack& slice_stack);
public:
    // Default Constructor
    PrintThreadSlicerProgressCallBack();
    // Default Destructor
    ~PrintThreadSlicerProgressCallBack();
};

#endif // PRINTTHREADPROGRESSCALLBACK_H
